<html>
  <head>
    <title>setTimeout</title>
  </head>
  <body>
    <script>
       /*
                一、 setTimeout(callback,delay,rest)

                              设定一个定时器。在定时到期以后执行注册的回调函数


                              1、参数说明

                                              参数	       类型	         必填	        说明

                                          1、callback	  Function	        是	    回调函数

                                          2、delay	    Number	          否	    延迟的时间，函数的调用会在该延迟之后发生，单位 ms

                                          3、rest	      Any	              否	    param1, param2, ..., paramN 等附加参数，它们会作为参数传递给回调函数


                              2、返回值


                                              返回值	    类型	        说明

                                          1、timeoutID	Number	      定时器的编号，这个值可以传递给 clearTimeout 来取消该定时

                二、clearTimeout(timeoutId)

                             取消由 setTimeout 设置的定时器。

                             1、参数说明

                                              参数	    类型	    必填	    说明

                                          1、timeoutID	Number	  是	    要取消的定时器的 ID   




                                        



                       ★、最佳实践
                       
                                 定时器应该在组件、页面销毁时候取消，否则该定时器将会成为 "游离定时器"，无法被回收销毁。

                                 <‘’script lang="ts">
                                      let timer: ReturnType<typeof setTimeout> | null = null;
                                      export default {
                                        data() {
                                          return {};
                                        },
                                        methods: {
                                          onSetTimeout() {
                                            timer = setTimeout(() => {
                                              console.log("setTimeout");
                                            }, 1000);
                                          },
                                          clearTimer() {
                                            // clearTime
                                            if (timer) {
                                              clearTimeout(timer);
                                              timer = null;
                                            }
                                          },
                                        },
                                        beforeUnmount() {
                                          // clearTime
                                          this.clearTimer();
                                        },
                                      };
                                  </‘’script>
            */
    </script>
  </body>
</html>